/***头文件引用****/
#include "main.h"
#include "delay.h"
void esp8266(void);
/**
  * @brief  使用esp8266模块和EDP协议向ONENET平台发送开发板四个LED指示灯的实时状态，并通过平台或者开发板按键控制LED。
**/
int main(void)
{	
		LED_Init();    //LED指示灯初始化函数
		KEY_Init();	   //按键初始化函数
		USART1_Init(); //USART1串口初始化函数
		USART2_Init(); //USART2串口初始化函数
		Delay_Init(72);	//延时函数初始化
		esp8266();//初始化wifi模块用到的四个引脚
		while(1)
		{		
				LED_Switch(LED_ON,LED_R|LED_G);	   //点亮开发板四个指示灯，表示程序进入主流程
				ESP8266_Init();    //ESP8266初始化
				ESP8266_DevLink(DEVICEID,APIKEY,20);    //和平台建立设备连接
				LED_Switch(LED_OFF,LED_R|LED_G); //熄灭开发板四个指示灯，表示程序完成设备连接，进入数据发送循环
			
				while(1)
				{		
						if(!(ESP8266_CheckStatus(30)))    //检测ESP8266模块连接状态
						{
								ESP8266_SendDat();     //向平台发送数据
						}
						else
						{
								break;
						}
				}
		}	
}

/***********************/
void esp8266(void)//初始化WiFi模块用到的四个引脚
{
	GPIO_InitTypeDef GPIO_InitStruct;
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
	GPIO_InitStruct.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_6|GPIO_Pin_7;
	GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_InitStruct.GPIO_Speed = GPIO_Speed_10MHz;
	GPIO_Init(GPIOA, &GPIO_InitStruct);
	GPIO_SetBits(GPIOA,GPIO_Pin_1|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6);
}
